Distributed computing over a heterogeneous collection of resources has garnered a lot of interest from various industries, including technical and scientific computing, financial, agriculture, and manufacturing to name just a few. A core component in such an environment is a scheduler that schedules jobs and assigns resources to them. Large scale compute farms may comprise many resources such as execution hosts, software licenses, databases, applications, memory, or the like. Many users of these compute farms may submit numerous jobs that are to be scheduled and run in accordance with various site specific policies, scheduling constraints, or the like. In a highly utilized compute farm often times the demand for resources is larger than the available capacity. Therefore, there may often be jobs waiting to be executed as soon as resources become available. Ensuring the right job gets the right resources ahead of other jobs is often a problem.
Administrators and users of highly utilized computer farms often have a desire to be able to analyze decisions being made by the scheduler in order to ascertain that the right jobs are being run ahead of others, as well as to understand why certain jobs are not being run. This helps, for instance, in ensuring that time to market goals are met for critical projects. The inability and delays in determining why certain jobs are not running may result in wasted time, resources, and money. Therefore, it is with respect to these considerations and others that the present invention has been made.